1. Field of the Invention.
The invention relates to the field of electronic keyboards, and in particular to keyboard crosspoint encoders having n-key rollover and phantom key detection.
2. Prior Art.
The usual electronic keyboard used for data entry into a computer or similar object device typically contains a crosspoint encoder as the key operational part. The crosspoint encoder comprises a flexible membrane or switches for causing electrical contact between row and column lines of a keyboard. The row and column lines thus form a grid pattern with lines held apart so that there is normally no electrical connection at the intersections. When external pressure is applied to the membrane or a key at the points of intersection, electrical contact is achieved at the intersection between one row line and one column line of the encoder. The information entered on the keyboard by the operator is detected by a microprocessor, for example, which scans all possible row/column combinations which keys are depressed at any given time. The microprocessor's scanning cycle is at a rate much faster than that of the most proficient typist so that no data is lost in the scanning process.
Problems with data entry error begin to arise when two or more keys are depressed simultaneously. This so-called "rollover" situation may occur accidentally, as when the operator strikes between two keys rather than directly upon one key, or when a highly proficient typist hits a short burst of very high speed typing on familiar letter combinations such as "the," "-tion," and the like. There are essentially three methods for dealing with the rollover problem. In the first of these methods, referred to as "no rollover," only the first stroke is recognized and all other simultaneously depresed keys are ignored. This method is sometimes used in calculators, bank machines, and generally in applications where a large volume of numerical figures must be entered with a high degree of accuracy. The method is too limited, however, for use where high typing speed is important, as too much data will be lost when the keyboard is used by a proficient typist. In the second method, "two-key rollover," only the first two keys of a simultaneously depressed series will be recognized, and all others will be ignored. In high speed typing applications, this method is an improvement over the no rollover method, but still results in loss of data. In the third method, "n-key rollover," all depressed keys are recognized whether depressed in a discrete manner or simultaneously. This method is obviously the preferable one for high speed typing applications, but here a new problem known as "phantom key" is introduced.
The phantom key problem may be summarily described as arising whenever three keys in a semirectangular pattern on the encoder matrix are held down simultaneously. Because of a false current path through the three closed junctions corresponding to the three depressed keys, an encoder having n-key rollover will receive a signal indicating that the key corresponding to the fourth vertex of the rectangle is depressed when in fact that key is not depressed. A keyboard having n-key rollover and no phantom key protection therefore will report all four keys when only three were depressed.
Several methods for dealing with the phantom key problem have been described in the prior art. One involves the isolation of each switch from every other switch, for example, by means of a diode, thus eliminating the possibility of a false current path. This method is expensive and is not practical with a membrane encoder. Another alternative is to discard all data entered while the phantom condition exists. This means that the three keys involved in creating the phantom condition plus all others depressed during the same period will be ignored, with a consequent loss of both real and phantom data. Such systems have been described in varying degrees of refinement in U.S. Pat. Nos. 4,106,011, 4,231,016, and 4,581,603. Finally, a system is described in U.S. Pat. No. 4,420,744, in which only those keys contributing to the phantom condition are ignored, while subsequent data entered during the phantom condition is recognized. In this system, the remaining two keys in the phantom group are recognized when one of the three is released and the phantom condition is terminated. This method results in complete retention of data, but also gives an incorrect ordering of data where more keys are depressed while the phantom condition still exists.